package com.tjc.timingwheel;

 interface Timer {

    /**
     * ����������ӵ���ִ������
     * �����������ӳٺ�ִ�У����ύʱ��ʼ��
     *
     * @param timerTask ��Ҫ��ӵ�����
     */
    void add(TimerTask timerTask);

    /**
     * �����ڲ�ʱ�ӣ�ִ���ھ����ĳ�ʱ����ʱ���ڵ��ڵ��κ�����
     *
     * @param timeoutMs �ȴ�����ʱ��
     * @return �Ƿ�ִ�����κ�����
     */
    Boolean advanceClock(Long timeoutMs);

    /**
     * ��ȡ����ִ�е�������
     *
     * @return ������
     */
    Integer size();

    /**
     * �رռ�ʱ�����񣬱���δִ�еĹ�������
     */
    void shutdown();

}